package com.tsystems.services;

import java.util.List;

import com.tsystems.dao.StationDAO;
import com.tsystems.entities.Station;

/**
 * 
 * @author vlad Класс, который отвечает за все операции производимые над
 *         станциями.
 */
public class StationServices {

	private static StationServices instance;

	public static synchronized StationServices getInstance() {
		if (instance == null) {
			instance = new StationServices();
		}
		return instance;
	}

	private StationServices() {

	}

	/**
	 * Метод, который возвращает все станции, которые содержатся в базе.
	 * 
	 * @return список станций.
	 */
	public synchronized List<Station> viewStations() {

		StationDAO stationDAO = new StationDAO();
		List<Station> stations = stationDAO.getStationList();
		return stations;

	}

	/**
	 * Метод, который добавляет станцию в базу, если станция с таким именем в
	 * базе еще не содержится.
	 * 
	 * @param station
	 *            добавляемая станция
	 * @return "Станция успешно добавлена" если станция добавлена успешно, иначе
	 *         "Станция с таким наименованием уже содержится в базе."
	 */
	public synchronized String addStation(Station station) {
		StationDAO stationDAO = new StationDAO();
		Station stationFound = stationDAO.getStationByName(station.getName());

		if (stationFound != null) {
			return "Станция с таким наименованием уже содержится в базе.";
		}

		stationDAO.insert(station);
		return "Станция успешно добавлена";

	}

}
